import java.io.*;

public class Demo7 {
    public static void main(String[] args) throws IOException {
        Reader reader = new FileReader("C:\\测开\\test.txt");

     /*   //1.一次read一个字符
        while(true){
            int c = reader.read();
            if(c == -1){
                break;
            }
            char ch = (char)c;
            System.out.println(ch);
        }*/


    try {
        //2.一次read多个字符
        while (true) {
            char[] cbuf = new char[1024];
            int n = reader.read(cbuf);
            if (n == -1) {
                //读取完毕
                break;
            }
            System.out.println("n = " + n);
            for (int i = 0; i < n; i++) {
                System.out.println(cbuf[i]);
            }
        }
    }finally{//无论try中的代码是正常执行完毕还是出现异常，都能保证finally执行完毕
        //3.一个文件使用完了，要记得close
         reader.close();
         }

        //try with resources 这个语法的目的就是（）定义的变量
        // 会在try代码块结束的时候（正常结束，抛出异常）自动调用其中的close方法
        //要求写在（）内的对象必须要实现closeable接口
    try(Reader reader1 = new FileReader("C:/测开/test.txt")){
        while(true){
            char[]cbuf = new char[3];
            int n = reader.read(cbuf);
            if(n == -1){
                break;
            }
            System.out.println("n = "+ n);
            for(int i = 0; i < n; i++){
                System.out.println(cbuf[i]);
            }
        }
    }
    }
}
